home *** CD-ROM | disk | FTP | other *** search
/ Deutsche Edition 1 / Deutsche Edition 1.iso / amok / 031-040 / amok40 / environment / mpcompile.dok < prev    next >
Text File  |  1993-11-04  |  12KB  |  302 lines

  1. Dokumentation zu
  2.  
  3.                 MPCompile   V3.3
  4.  
  5.                             von Markus Peuckert
  6.  
  7.  
  8. COPYRIGHT:            M.Peuckert
  9.                 Steinweg 18
  10.                 3501 Ahnatal-Weimar
  11.  
  12.             Copyright (c) 1989 by M.Peuckert
  13.  
  14. ==============================================================================
  15.         !!!!!!        WICHTIG        !!!!!!
  16.   Sämtliche Urheberrechte liegen beim Autor. Dieses Programm darf frei
  17. kopiert werden solange es komplett ist (siehe BEILAGEN).
  18.             Es ist ShareWare:
  19. !
  20.     Bei regelmäßiger Benutzung bitte ich um eine kleine Gebühr von etwa
  21. 10 D-Mark (Schüler) bis 20 D-Mark (User mit Einkommen).
  22. !
  23. Es wird jegliche Art von Garantien abgelehnt, welche die Tauglichkeit der
  24. Software für einen bestimmten Zweck versprechen. Für Fehler in der
  25. Dokumentation und im Programm werden nicht gehaftet. Auch nicht für Schäden,
  26. die durch den Gebrauch der Dokumentation, deren Inhalt oder von der Software
  27. direkt oder indirekt entstehen.
  28. ==============================================================================
  29.  
  30.  
  31. BEILAGEN:
  32.         - Das Programm MPCompile V3.3
  33.         - Der komplette SourceCode
  34.         - Diese Dokumentation
  35.  
  36.  
  37. VORWEG:
  38.   Dieses Utility ist als Programmierhilfe für beliebige Programmierumgebungen
  39. gedacht. Besonders für Modula-2 Programmierer ist es interessant, da es in
  40. dieser Sprache geschrieben ist (M2Amiga A+L AG). Benutzer anderer
  41. Compiler werden aber auch eine nützliche Hilfe darin sehen, weil durch die
  42. Verwendung von Platzhaltern, für das zu compilierende/linkende Programm, eine
  43. hohe Flexibilität geboten wird.
  44.  
  45. VERBESSERUNGEN:
  46.   Zur Version 3.3 von MPCompile:
  47.       - In dieser Version wurde die Iconifizierung des Steuerfensters und
  48.       des CONSOLE-Fensters verbessert. Das Programm merkt sich nun die
  49.       Koordinaten der beiden Fenster und öffnet sie wieder an der vorigen
  50.       Stelle.
  51.     - Auch im FileHandling wurde einiges verbessert. So wird nun erkannt,
  52.     wenn ein File nicht vorhanden ist und eine entsprechende Meldung
  53.     herausgegeben.
  54.     - Alternative Arbeitsmodi, siehe SPEZIELLES.
  55.  
  56. AUFRUF:
  57.   Rufen Sie MPCompile über das CLI auf, da es beim Aufruf über die Workbench
  58. sonst zu einem "Stack Overflow" des von MPCompile aufgerufenen Compilers/Linkers
  59. führen kann. Am besten Sie starten mit "Run MPCompile" und sehen was sich tut:
  60.  
  61. INITIALISIEREN:
  62.   Es öffnen sich drei Fenster. Das oberste ist das Steuerfenster über das alle
  63. Aufrufe geschehen. Darunter wird ein CONSOLE-Fenster geöffnet für die Ausgaben
  64. des Compilers/Linkers/Debuggers etc. Danach wird das sogenannte
  65. "PopWindow Preferences"-Fenster geöffnet in dem in verschiedenen Gadgets die
  66. Aufrufe für Compiler, Linker, Loader/Debugger, den verwendeten Editor und das
  67. von Ihnen zu bearbeitende Programm spezifiziert werden. Sind diese Gadgets
  68. leer, so tragen Sie dort die Art und Weise des Compilers ein, wie er gestartet
  69. wird. Analog müssen Sie in die anderen Gadgets die Aufrufbedingungen der von
  70. Ihnen verwendeten Programme eingetragen werden. Verwenden Sie irgendein
  71. Programm nicht (z.B. keinen Debugger oder Loader), so lassen Sie dieses
  72. Feld einfach frei. In das Feld "Program" tragen Sie einfach ihr zu
  73. bearbeitendes SourceCode-Programm ein (mit vollem Pfadnamen z.B. :
  74.         "vd0:Bsp.Mod").
  75.  
  76. RESIDENT:
  77.   Ist es möglich, z.B. den Compiler resident zu halten
  78. (z.B. m2c, m2l: Version 3.3), so geben Sie in dem StringGadget für
  79. das entsprechende Programm nur seinen Namen (KEINE Pfadnamen) ein:
  80.          Beispiel:    m2c #.Mod
  81.  
  82. Den Compiler m2c und den Linker m2l können Sie mittels folgenden Anweisungen
  83. resident machen:
  84.     Resident M2:m2c pure
  85.     Resident M2:m2l pure
  86. Dazu müssen Sie vorher nur die Shell-Seg initialisieren und NewCon: "mounten":
  87.     Resident l:Shell-Seg SYSTEM pure
  88.     Mount NewCon:
  89.  
  90. PLATZHALTER:
  91.   Nun muß noch einiges zum Platzhalter gesagt werden. Damit MPCompile weiß, wo
  92. der Programmname ihres Programmes im, z.B. Compileraufruf, eingefügt werden
  93. muß, geben Sie im Gadget für die Maske des Compileraufrufs ein Doppelkreuz
  94. und nach dem Doppelkreuz die Endung für die Source ein:
  95.         Beispiel:     M2:m2c -Opts #.Mod
  96.  
  97. MPCompile setzt nun ihr Programm, z.B. "Bsp", beim Aufruf an die Stelle des
  98. Doppelkreuzes:
  99.         M2:m2c -Opts Bsp.Mod
  100.  
  101. Achten Sie bei der Eingabe in das Feld "Program" (zu compilierendes Programm)
  102. auf Groß/klein-Schreibung. Manche Compiler und/oder Linker und/oder
  103. Loader/Debugger sind da ziemlich pingelig.
  104.  
  105. EXTENSIONEN & OPTIONEN:
  106. Sie können in dem "Program"-Gadget die Extension weglassen, können Sie aber
  107. auch dahinterschreiben:
  108.  
  109. Eingabe in das "Program"-Gadget :     vd0:Bsp        oder:
  110.                     vd0:Bsp.Mod
  111.  
  112. Geben Sie für den Linkeraufruf nach dem Doppelkreuz die Extension ein,
  113. die Ihr Linker benötigt. Dies ist notwendig, da MPCompile sich diese
  114. Extension holt und testet, ob das entsprehende ObjektFile überhaupt
  115. existiert. Im Falle von m2l geben Sie ein:
  116.  
  117.     Linker:         M2:m2l #.obj
  118.  
  119. Für den Debugger "m2r" wird die Extension, die im LinkerGadget spezifiziert
  120. wurde, weggelassen, weil der Debugger keine Endungen toleriert wie der Linker.
  121. Deshalb kann es bei Verwendung von Debuggern anderer Sprachen zu
  122. Schwierigkeiten kommen, weil im LoaderGadget keine Endung extrahiert wird
  123. und somit nicht beim Aufruf des Loaders/Debuggers zur Verfügung steht.
  124.  
  125.  
  126. Bei manchen Compilern kann man die Optionen erst NACH Angabe des zu
  127. compilierenden Programmes angeben. Dafür ist die Verwendung des Platzhalters
  128. gedacht. Source : "Bsp.c".
  129.  
  130.     Beispiel:    cc #.c -Opts        wird zusammengesetzt zu
  131.  
  132.             cc Bsp.c -Opts
  133.  
  134. Viele Linker laufen z.T. nur so:
  135.             ln #.o -Opts    ==>  ln Bsp.o -Opts
  136.  
  137.  
  138. PFADNAME:
  139.   Der Pfadname am Anfang des Programmnamens wird von MPCompile extrahiert und
  140. dorthin das aktuelle Directory gesetzt. Damit wird erreicht, daß der aufgerufene
  141. Compiler das compilierte Programm auch dort ablegt und nicht in seinem eigenen
  142. Directory.
  143.  
  144. SONSTIGES:
  145.   Haben Sie alle erforderlichen Eingaben getätigt, können Sie diese mit
  146. Anklicken des "SAVE"-Gadgets abspeichern. Dies geschieht in die Datei
  147. "Compi.config", die eigens dafür im "s:"-Directory der Systemdiskette angelegt
  148. wird.
  149.   Bei Anklicken des ToggleSelectGadgets "ALT" wird eine andere Configdatei
  150. angesprochen : Compi2.config, die sich auch im "s:"-Directory befindet.
  151. Weiteres, siehe unter UMLEITUNG.
  152.   Beim Starten von MPCompile wird nachgeschaut, ob diese Datei vorhanden ist und
  153. die gespeicherten Daten eingelesen. Wenn nicht, wird sie automatisch
  154. eingerichtet und Sie können nach Eingabe in die Gadgets des "PopWindow"
  155. abspeichern. Haben Sie die Einstellungen geändert und wollen aber
  156. lieber die gespeicherten Daten wiederhaben, so klicken Sie einfach das
  157. "LOAD"-Gadget an. Die vorher gespeicherten Einstellungen werden wieder geladen.
  158. Sind diese Initialisierungen erfolgt, klicken Sie das Closing-Gadget an.
  159. Das "PopWindow" wird geschlossen und ...
  160.  
  161. ARBEITEN:
  162. ...  Sie befinden sich im Steuermodus.
  163. Der Name des zu bearbeitenden Programmes wird dabei mit Pfad im Output-Fenster
  164. angezeigt.
  165.   Folgende Gadgets bewirken folgendes:
  166.  
  167. Compile     : compiliert das eingestellte Programm.
  168. Link        : linkt       "      "          "     .
  169. Load/Debug      : lädt den Loader/Debugger mit dem eingestellten Programm.
  170. Run        : führt die Anweisungen : Compile, Link, Execute nacheinander
  171.           aus. (Nur klicken, wenn Source fehlerfrei ist, sonst
  172.           Linker- und Programmaufruf umsomst)
  173. Execute        : startet das fertig compilierte und gelinkte Programm.
  174. Edit        : startet den eingestellten Editor mit dem eingestellten
  175.           Programm.
  176. Pop        : öffnet das PopWindow und alle Einstellungen können geändert
  177.           werden.
  178.  
  179.   Klicken Sie nun die gewünschten Operationen an, die dann unverzüglich
  180. ausgeführt werden. Die Ausgaben des Compilers/Linkers/Loaders werden dabei in
  181. das Output-Fenster umgeleitet. Während eine Operation ausgeführt wird, sind
  182. zwar die Gadgets anklickbar, aber der IDCMP ist für dieses Fenster
  183. abgeschaltet. D.h., wenn Sie, während ein Programm läuft, versonnen auf den
  184. Gadgets herumklicken, passiert nichts (Sonst würden, je nachdem welche Gadgets
  185. Sie angeklickt haben, diese Programme nacheinander gestartet, was dann
  186. ewig dauert bis Sie wieder sinnvoll arbeiten können).
  187. Sie können aber auch den CLI-Befehl "Run" vor den Aufruf des gewünschten
  188. Programmes setzen. Es wird damit ein neuer Task gestartet und Sie können mit
  189. MPCompile gleich weiterarbeiten und müssen nicht erst warten bis das aufgerufene
  190. Programm abgearbeitet ist. Am Beispiel des Editors, den man ja nicht immer
  191. zum Compilieren verlassen will:
  192.  
  193.         Run M2:m2emacs #
  194.  
  195.  
  196. BESONDERHEITEN:
  197.   Sie können MPCompile iconifizieren indem Sie das Steuerfenster mit dem linken
  198. Mausknopf aktivieren und dann den rechten Mausknopf drücken. Daraufhin wird das
  199. Output-Fenster geschlossen, das Steuerfenster auf ein Minimum verkleinert und
  200. an den rechten Workbenchrand verschoben. Arbeiten Sie dann etwas anderes.
  201. Wenn Sie wieder mit MPCompile arbeiten wollen, müssen es wieder aktiv-klicken
  202. und dann die rechte Maustaste drücken. Das Steuerfenster und das Output-Fenster
  203. werden dann an die ursprüngliche Stelle gerückt und wieder vergrößert, bzw.
  204. geöffnet. Alle Fenster von MPCompile sind beliebig verschiebbar gehalten
  205. (auch das iconifizierte Steuerfenster).
  206.  
  207. !!!!!!!!!!!!!!!!!!!!!!!!
  208. ! VORSICHT !
  209.   Wollen Sie ein Sie Programm von MPCompile aus ausführen lassen, daß vom
  210. Standart-Input/Output (Console-Window) Eingaben verlangt, so sind keine
  211. Eingaben möglich und Programm wartet bis zum Sankt Nimmerleinstag auf
  212. seine Antworten !
  213. Lassen Sie es lieber von der Workbench oder direkt vom CLI aus starten.
  214. !!!!!!!!!!!!!!!!!!!!!!!!
  215.  
  216. UMLEITUNG:
  217.   Auch eine Umleitung der Ein- und Ausgaben für den Compiler wie unter
  218. [AmigaDOS] ist möglich. Geben Sie hier im "PopWindow" unter Compileraufruf
  219. einfach einen Pfeil und einen Dateinamen für die Umleitung ein.
  220. Zum Beispiel:
  221.     Umleitung der Compilerausgaben in eine Datei "temp" in der RAMDisk:
  222.  
  223.     M2:m2c >ram:temp #
  224.  
  225.  
  226.   Es ist möglich eine Datei als Eingabe für den Compiler zu benutzen, um mehrere
  227. Programme in einem Aufruf zu compilieren (wenn das der Compiler zuläßt).
  228. Beispiel:
  229.     Umleitung der Compilereingabe aus der Datei "Sources" in der RAMDisk:
  230.  
  231.     M2:m2c <#
  232.  
  233.   Wobei nun im Popwindow unter "Program" die Datei "ram:Sources" eingetragen
  234. werden muß, damit sich der Compiler dort seine SourcecodeProgramme holen
  235. kann, die er dann nach und nach abarbeitet und das Compilat (WICHTIG!!)
  236. in der RAMDisk abspeichert. Die Datei enthält dann nur die zu compilierenden
  237. Programme, z.B.:
  238.  
  239. vd0:Source1.Def
  240. vd0:Source1.Mod
  241. vd0:Source2.Mod
  242. vd0:Source3.Def
  243.  
  244. In diesem Beispiel holt sich der Compiler seine Sourcecodes aus der restfesten
  245. Ramdisk "vd0:" und legt dann die compilierten Objektdateien in der RAMDisk ab.
  246.  
  247. Mittels des "ALT"-Gadgets im PopWindow können sie auf solch eine Arbeitsweise
  248. umschalten, indem Sie die obenbeschriebenen Schritte in die Gadgets eintragen
  249. und bei eingeschalteten "ALT"-Gadget das "SAVE"-Gadget anklicken. Die Daten
  250. werden nun in der Datei "s:Compi2.config" gespeichert.
  251.  
  252. SPEZIELLES: für Modula-Programmierer:
  253.   Geben Sie für Haupt-Module in einer solchen Datei keine Extension an,
  254. und leiten die Eingaben von dieser Datei um, dann kann man compilieren und
  255. linken in einem Durchgang:
  256.  
  257.     Compiler:    M2:m2c <#
  258.     Linker  :    M2:m2l <#
  259.     Program :    ram:Sources    Datei in der die zu compilierenden
  260.                     Sources definiert sind.
  261.     Editor    :    M2:m2emacs #
  262.  
  263.  
  264. So könnte dann "ram:Sources" aussehen:
  265.  
  266. vd0:Source1.Def            Defintions-Modul    soll nur compiliert werden.
  267. vd0:Source1.Mod            Implentations-Modul  "    "      "        "   .
  268. vd0:Source2.Def            Defintions-Modul    soll nur compiliert werden.
  269. vd0:Source2.Mod            Implentations-Modul  "    "      "        "   .
  270. vd0:MainSource            Programm-Modul soll compiliert und gelinkt
  271.                 werden.    (Extension wird weggelassen)
  272.  
  273. Vom M2-Linker werden nämlich nur solche Dateien anerkannt, die eine Endung mit
  274. ".obj" oder keine Endung haben. Der Compiler erkennt Definitions-Module nur
  275. an der Endung ".Def".
  276.  
  277. MEINE EINSTELLUNGEN:
  278.   Als Beispiel gebe ich hier die Einstellungen an, die ich selbst meistens
  279. benutze:
  280.     Compiler :    m2c #.Mod
  281.     Linker   :    m2l #.obj
  282.     Loader   :    M2:m2r #
  283.     Program  :    vd0:Bsp
  284.     Editor   :    Run M2:m2emacs #
  285.  
  286. Für ALT-Funktion :
  287.     Compiler :    m2c <#
  288.     Linker     :    m2l <#
  289.     Loader   :
  290.     Program  :    vd0:Temp
  291.     Editor     :    Run M2:m2emacs #
  292.  
  293. Wobei ich den Compiler und den Linker resident halte (Beschreibung siehe oben).
  294.  
  295.  
  296. ZUM SCHLUß:
  297.   Gibt es irdendwelche Bugs (mir sind keine aufgefallen) oder neue Anregungen,
  298. so bitte ich Sie, mir doch zu schreiben.
  299.  
  300.     Viel Spaß noch !
  301.                  Markus
  302.